TestClientProxy   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 23
dl 0
loc 28
rs 10
c 0
b 0
f 0

5 Functions

Rating   Name   Duplication   Size   Complexity  
A close 0 3 1
A send 0 4 1
A connect 0 3 1
A dispatchEvent 0 3 1
A publish 0 3 1
1
/* tslint:disable:max-classes-per-file */
2
import { Injectable } from '@nestjs/common';
3
import { ClientProxy, ReadPacket, Transport, WritePacket } from '@nestjs/microservices';
4
import { Publisher } from '../../../../src/decorators/transport.publisher.event-bus.decorator';
5
import { defer, Observable, } from 'rxjs';
6
import { Storage } from '../storage/storage';
7
8
@Injectable()
9
export class TestClientProxy extends ClientProxy {
10
    constructor(
11
        private storage: Storage
12
    ) {
13
        super();
14
    }
15
16
    send<TResult = any, TInput = any>(pattern: any, data: TInput): Observable<any> {
17
        this.storage.upsert('Rabbit', data['payload']['message']);// tslint:disable-line
18
        return defer(() => Promise.resolve());
19
    }
20
21
    close(): any {
22
        return undefined;
23
    }
24
25
    connect(): Promise<any> {
26
        return undefined;
27
    }
28
29
    protected dispatchEvent<T = any>(packet: ReadPacket<any>): Promise<T> {
30
        return undefined;
31
    }
32
33
    protected publish(packet: ReadPacket<any>, callback: (packet: WritePacket) => void): any {
34
        return undefined;
35
    }
36
}
37
38
@Injectable()
39
@Publisher(Transport.RMQ)
40
export class RabbitPublisher {
41
    constructor(
42
        private client: TestClientProxy
43
    ) {
44
        // TODO
45
    }
46
47
}
48